package org.pps.gl.client.data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;

public class NewsInfo implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6281551252356195585L;
	public static final int EVENT_MODIFY_ETUDE = 1;
	public static final int EVENT_MODIFY_ENTREPRISE = 2;
	public static final int EVENT_CREATE_PROFILE = 3;
	public static final int EVENT_ADD_CONTACT = 4;
	public static final int EVENT_MODIFY_USER_INFORMATION = 5;

	/**
	 * Description de l'evenement (c'est la chaîne de caractère qui sera
	 * affichée);
	 */
	String description;

	/**
	 * Information sur le propriétaire du profil dans lequel est stocké la
	 * news;
	 */
	UserInfo ownerInfo;

	/**
	 * A valeur dans : EVENT_MODIFY_ETUDE = 1; EVENT_MODIFY_ENTREPRISE = 2;
	 * EVENT_ADD_CONTACT = 3; EVENT_MODIFY_USER_INFORMATION = 4;
	 * EVENT_CREATE_PROFILE= 6;
	 */
	int eventType;

	/**
	 * Les adresses e-mail de tous les contacts impliqués dans la news
	 */
	ArrayList<UserInfo> users;

	/**
	 * La date de création de l'évènement
	 */
	Date date;

	public NewsInfo() {
		super();
		this.ownerInfo = null;
		this.eventType = -1;
		this.users = new ArrayList<UserInfo>();
		this.date = new Date();
		switch (eventType) {
		case EVENT_MODIFY_ETUDE:
			description = " a ajouté une étude à son profil.";
			break;
		case EVENT_MODIFY_ENTREPRISE:
			description = " a ajouté une expérience professionnelle à son profil.";
			break;
		case EVENT_MODIFY_USER_INFORMATION:
			description = " a modifié ses informations personnelles.";
			break;
		case EVENT_ADD_CONTACT:
			description = " est en contact avec ";
			break;
		case EVENT_CREATE_PROFILE:
			description = " a rejoint Polytech +.";
			break;
		default:
			description = " a modifié son profil.";
			break;
		}

	}

	public NewsInfo(UserInfo ownerInfo, int eventType,
			ArrayList<UserInfo> users, Date date) {
		super();
		this.ownerInfo = ownerInfo;
		this.eventType = eventType;
		this.users = users;
		this.date = date;
		switch (eventType) {
		case EVENT_MODIFY_ETUDE:
			description = " a ajouté une étude à son profil.";
			break;
		case EVENT_MODIFY_ENTREPRISE:
			description = " a ajouté une expérience professionnelle à son profil.";
			break;
		case EVENT_MODIFY_USER_INFORMATION:
			description = " a modifié ses informations personnelles.";
			break;
		case EVENT_ADD_CONTACT:
			description = " est en contact avec ";
			break;
		case EVENT_CREATE_PROFILE:
			description = " a rejoint Polytech +.";
			break;
		default:
			description = " a modifié son profil.";
			break;
		}

	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public int getEventType() {
		return eventType;
	}

	public void setEventType(int eventType) {
		this.eventType = eventType;
	}

	public UserInfo getOwnerInfo() {
		return ownerInfo;
	}

	public void setOwnerInfo(UserInfo ownerInfo) {
		this.ownerInfo = ownerInfo;
	}

	public ArrayList<UserInfo> getUsers() {
		return users;
	}

	public void setUsers(ArrayList<UserInfo> users) {
		this.users = users;
	}

}
